package com.example.myapplication.kotlin
/*
Kotlin默认所有类都是final的（不可继承）,
必须使用 open 修饰符使类可继承,
方法也必须标记为 open 才能被重写。
*/

/*
子类重写方法必须使用override修饰符,
子类必须调用父类的主构造函数,
如果父类没有主构造，
子类必须显式调用父类的次构造。
*/
//父类
open class Computer(var name: String) {
    open fun skill() {
        println("使用" + name + "玩游戏")
    }
}

// 子类
class lenovo(name: String) : Computer(name) {
    override fun skill() { // 【重写父类的方法】
        println("使用" + name + "看电影")
        // supper调用父类的方法
        super.skill() // 调用父类的方法,使用lenovo玩游戏
    }
}

fun main() {
    var computer = lenovo("lenovo")
    computer.skill() // 使用lenovo看电影
}